Active flow management with hysteresis

ABSTRACT

The present invention provides for a computer network method and system that applies “hysteresis” to an active queue management algorithm. If a queue is at a level below a certain low threshold and a burst of packets arrives at a network node, then the probability of dropping the initial packets in the burst is recalculated, but the packets are not dropped. However, if the queue level crosses beyond a hysteresis threshold, then packets are discarded pursuant to a drop probability. Also, according to the present invention, queue level may be decreased until it becomes less than the hysteresis threshold, with packets dropped per the drop probability until the queue level decreases to at least a low threshold. In one embodiment, an adaptive algorithm is also provided to adjust the transmit probability for each flow together with hysteresis to increase the packet transmit rates to absorb bursty traffic.

FIELD OF THE INVENTION

This invention relates in general to bandwidth allocation and activeflow management techniques for computer networks, and more particularlyto implementation of hysteresis in active flow management techniques toincrease network system throughput by making better use of availablequeue capacity.

BACKGROUND OF THE INVENTION

In computer network systems, active flow management techniques arecommonly used to control the subscription and offered load of eachthread data flow, along with the service rate of the network systemitself, to achieve fairness of bandwidth allocation.

However, unnecessary packet drop due to short burst traffic may occur,and problems arise if there is no mechanism provided to preferentiallytreat short bursts of packets. Most active queue management algorithmsdrop some packets when congestion is detected, and indeed in an initialburst to detect incipient congestion. If the burst is sustained for avery short period, this can cause unnecessary packet drops because thereis enough space in the packet buffer to be able to accommodate theburst. This is especially detrimental in Transmission Control Protocol(TCP) networks because each packet drop causes TCP retransmissions whichcan lead to very low useful throughput.

In TCP networks, it is known to use Explicit Congestion Notification(ECN) to mark packets and indicate to a sender that a congestion windowshould be adjusted to a lower rate. However, ECN applied in the case ofvery short and sustainable bursts can be detrimental to the totalthroughput because it unnecessarily causes the window to adjust when thepackets in the burst could well have been transmitted only with a littleprice in latency. It is also known to use an exponentially weightedmoving average of a queue level to smooth out bursts; however, thissolution is computationally expensive.

What is needed is a method and system for active flow management forcomputer networks that sustains short burst packet traffic withoutcausing unnecessary packet drops and at the same time not degrading thenetwork system throughput for persistent bursts of packets, and whichcan be implemented in hardware without too much logic overhead.

SUMMARY OF THE INVENTION

The present invention provides for a computer network method and systemthat applies “hysteresis” to an active queue management algorithm. If aqueue is at a level below a certain low threshold (L) and a burst ofpackets arrives at this network node, then the probability of droppingthe initial packets in the burst is recalculated, but the packets arenot dropped. However, if the queue level crosses beyond a “hysteresisthreshold” (Ht), then packets are discarded pursuant to a dropprobability. This allows more packets from the burst to get into thequeue. Where the burst lasts for a short time (a “short burst”), thenthe present invention provides the ability to transmit every singlepacket.

According to the present invention, when a queue level is beyond thehysteresis threshold, and arrival rate into the queue is less than thesending rate from the queue, then queue level is decreased until itbecomes less than the ‘hysteresis threshold’ (Ht). However, during thistime, packets get dropped as per the drop probability until the queuelevel decreases to at least the low threshold (L). Thus, the presentinvention is intended to improve network performance where a burst isreceived into a queue when the queue level is low.

In one embodiment of the present invention, an adaptive algorithm isalso provided to adjust the increment and decrement of transmitprobability for each flow, together with hysteresis to increase thepacket transmit rates by using packet data store to absorb burstytraffic. The proposed algorithm maintains the throughput for persistentbursts of packets. Using straight forward implementation of hysteresisin the active flow management will increase the system throughput bymaking better use of available queue capacity. This results in anincrease in the queue level peak, potentially exposing the system totail drops when subjected to severe bursts for bursty traffic. With theaddition of adaptive increment and decrement of transmit probability ofeach flow, queue peak can be limited to a reasonable level, thuspreventing tail drop.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graphical representation of the relationship of transmitprobability to buffer capacity according to the present invention.

FIG. 2 is a flowchart illustrating a hysteresis algorithm according tothe present invention.

FIG. 3 is a graphical representation of results for queue occupancy forhysteresis factor levels according to the present invention.

FIG. 4 is a graphical representation of the transmit rates for variouslevels of hysteresis according to the present invention.

FIG. 5 is a table of transmit rates for bursty traffic according to thepresent invention.

FIG. 6 is a graphical representation of a transmit rate throughputcomparison for bursty traffic for RED, RED with hysteresis, SARED andSARED with hysteresis according to the present invention.

FIG. 7 is a graphical representation of a latency comparison for burstytraffic for RED, RED with hysteresis, SARED and SARED with hysteresisaccording to the present invention.

FIG. 8 is a high-level block diagram of a standalone network simulatorappropriate for use with the present invention.

FIG. 9 is a graphical representation of UDP traffic on the standalonenetwork simulator of FIG. 9 according to the present invention.

FIG. 10 is a graphical representation of UDP short burst bursty trafficon the standalone network simulator of FIG. 9 according to the presentinvention.

FIG. 11 is a graphical representation of TCP constant traffic on thestandalone network simulator of FIG. 9 according to the presentinvention.

FIG. 12 is a graphical representation of TCP bursty traffic on thestandalone network simulator of FIG. 9 according to the presentinvention.

FIG. 13 provides tables of packet drop and packet transmit statisticsaccording to the present invention.

FIG. 14 is a flowchart that shows an adaptive algorithm according to thepresent invention.

FIG. 15 is a graphical representation of aggregate transmit ratesaccording to the present invention.

FIG. 16 is a graphical representation of average latency according tothe present invention.

FIG. 17 is a graphical representation of aggregate transmit ratesaccording to the present invention.

FIG. 18 is another graphical representation of aggregate transmit ratesaccording to the present invention.

FIG. 19 is a graphical representation of aggregate transmit rates forsteady traffic according to the present invention.

FIG. 20 illustrates an embodiment of the invention tangibly embodied ina computer program residing on a computer-readable medium or carrier.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention applies “hysteresis” to active queue managementtechniques. Hysteresis is generally defined as “the lagging of an effectbehind its cause” and it is well-known to use hysteresis behavior inapplications that switch between two transmission modes in a variety ofnetwork system applications. In the present invention, where a queue isat a level below a certain low threshold (L) and a burst of packetsarrives at this network node, then the probability of dropping theinitial packets in the burst is recalculated, but the packets are notdropped. However, if the queue level crosses beyond a “hysteresisthreshold” (Ht), then packets are discarded pursuant to a dropprobability. This allows more packets from the burst to get into thequeue. Thus, where the burst lasts for a short time (a “short burst”),then the present invention provides the ability to transmit every singlepacket.

According to the present invention, when a queue level is beyond thehysteresis threshold, and arrival rate into the queue is less than thesending rate from the queue, then queue level is decreased until itbecomes less than the ‘hysteresis threshold’ (Ht). If the arrival rateinto the queue is less than the sending rate from the queue, and packetsarriving into the queue are not discarded, the queue level willeventually rise and, after a while, no more packets will be acceptedinto the queue. According to algorithms taught by the present invention,arriving packets are randomly discarded but only to the point where thequeue level reaches the hysteresis threshold. However, during this timepackets get dropped as per the drop probability until the queue leveldecreases to at least the low threshold (L). Thus, the present inventionis intended to improve network performance where a burst is receivedinto a queue when the queue level is low.

Random Early Detection is a well-known queue management algorithm thatis used in network routers to detect incipient congestion based on queueoccupancy. As per the definition of RED, a low (L) and a high (H)threshold are defined for the queue. An exponentially weighted average(Qavg) of the queue occupancy is used to define congestion. If Qavg isless than L, the arriving packet is not discarded. If Qavg is greaterthan H, the arriving packet is discarded. If Qavg lies between L and H,a discard probability is calculated for the arriving packet based on thelinearly increasing probability between L and H.

One of the drawbacks of RED is that it is not easy to set the thresholdsto achieve optimum queue occupancy and network performance. Referringnow to FIG. 1, a graphical representation 10 of the relationship oftransmit probability p to buffer capacity Q according to the presentinvention is illustrated, where T represents the transmit probability;To represents an initial value for the transmit probability; H and Lrepresent the High and low thresholds, respectively, for Random EarlyDetection (RED); and Qmax represents the buffer capacity. In the exampleillustrated, L=(1/4)*Qmax; H=(31/32)*Qmax, 0<=L<=Ht<=Qmax;T=1−(Q−L)*(1−T₀)/(H−L), and T₀=1/8. However, the present invention isnot limited to these values, and it is to be understood that othervalues may be selected for use with the present invention. The solidline 12 is the transmit probability curve when the hysteresis flag isturned OFF. The dotted line 14 is the transmit probability curve whenthe hysteresis flag is turned ON. If hysteresis flag (HT) is on, thendiscards should be delayed; otherwise, discard probability should becalculated as per the queue management scheme. Thus, according to thepresent invention, the queue level is treated as a vector instead of ascalar: i.e., the queue level now has a direction 16 along with a value12 or 14.

FIG. 2 is a flowchart illustrating a hysteresis algorithm 301 forsetting the hysteresis flag according to the present invention. At step302, the hysteresis flag (HT) setting is ascertained. If the HT is on,then the queue level is checked at step 304 to determine whether it hasincreased beyond or is equal to the hysteresis threshold (Ht). If yes,then the HT flag is switched OFF at step 306. Otherwise, the HT flag iskept ON at step 308.

Alternatively, if the HT is OFF at step 302, then the queue level ischecked at step 310 to determine whether it has decreased to a valuebelow the low threshold (L): if not, then the HT flag remains switchedOFF at step 306; if so, then at step 312, it is determined whether theoffered load (OL) is below the link capacity (C). Offered load isdefined to be the aggregate traffic bandwidth being presented to thelink between two nodes in a network by a data transmitter. Link Capacityis defined as the maximum bandwidth supported by a physical link betweentwo nodes in a network. If OL is below C at step 312, then the HT flagis switched ON at step 3080N (this implies that the incoming flows arewell behaved); otherwise, the HT flag remains switched OFF at step 306.

The hysteresis algorithm 301 described above has been tested underconstant traffic load as well as under bursty traffic load. Embodimentsof the present invention have been implemented on two separate models: aNetwork processor simulation engine (NPSim) and an independent Networksimulator (ns-2). As shown in FIG. 3 et seq, there is considerableimprovement in network throughput by using hysteresis on RED accordingto the present invention. Under the constant load conditions, trafficsent into the NPSim network processor simulation model running thealgorithm 301 oversubscribed the link by 50%. A hysteresis factor (n) isdefined as the ratio of the hysteresis threshold to the low threshold ofRED, thus Ht=n*L. Results for queue occupancy for four levels of thehysteresis factor are shown in FIG. 3: level 402 where n=1; level 404where n=1.25; level 406 where n=1.5, and level 408 where n=2. Note thatapplying hysteresis to a constant load does not affect the throughput ofthe flow control scheme adversely. In fact, the initial hump 410 forcase 408 where n=2 helps to slightly improve the throughput.

FIG. 4 illustrates the transmit rates for various levels of Hysteresis.For case C1 502, the offered load (OL) is 50% of link capacity (C). Forcase C2 504, the offered load is 100% of link capacity. And for case C3506, the offered load is 150% of link capacity. Note that for C3 506,66.7% of traffic is transmitted.

FIG. 5 illustrates transmit rates for bursty traffic; 150% of linkcapacity is sent during the BURST ON period, and 20% of link capacity issent during the BURST OFF period. The BURST ON and OFF periods arevaried for different levels of oversubscription.

FIG. 6 illustrates a transmit rate throughput comparison for burstytraffic for RED 706, RED with hysteresis 704, Shock Absorber RandomEarly Detection (SARED) 708 and SARED with hysteresis 704. Furtherinformation about SARED is set forth in commonly-assigned U.S. patentapplication entitled “FLOW CONTROL IN COMPUTER NETWORKS”, Ser. No.10/160,507, filed Jun. 3, 2002, which is incorporated herein by thisreference. For Both RED and SARED queue management schemes, there is aconsiderable improvement in the transmit rates for bursty traffic whenhysteresis is applied to the scheme.

FIG. 7 illustrates a latency comparison for bursty traffic for RED 804,RED with hysteresis 802, SARED 810 and SARED with hysteresis 806. Thisillustration shows the price that needs to be paid in terms ofadditional queue occupancy (which can be translated into latency) forachieving the higher throughput. In all cases, the queue occupancyincreases only marginally.

FIG. 8 is a block diagram of a standalone network simulator NS-2 902 foruse with the present invention. A node s1 904 sends traffic to a node s2906 via router r1 910. An active queue management algorithm (RED) runsat r1, with a packet size of 1000 bytes. Note that the r1-s2 link 912 isoversubscribed by 50%, with a buffer size at r1 of 600 packets, and Ht=Lfor no hysteresis, Ht=2L for hysteresis.

Results of testing the hysteresis algorithm 301 on a User DatagramProtocol (UDP) traffic first Case 1002 on the NS-2 902 are illustratedin FIG. 9. There are 2 bursts 1004 and 1006 in the simulation. Eachburst 1004 and 1006 lasts for 2 seconds. An OFF period 1008 between theburst 1004 and 1006 is also two seconds, resulting in queue occupancyfor RED 1010 and RED-with-hysteresis 1012 as shown.

Results of testing the hysteresis algorithm 301 on a UDP short burstbursty traffic Case 1102 on the NS-2 902 are illustrated in FIG. 10. Twobursts 1104 and 1106 are run in the simulation. The first burst 1104lasts from 0 sec. to 0.5 sec. and the second burst 1106 lasts from 3.0sec. to 4.0 sec., with resultant queue occupancy for RED 1108 andRED-with-hysteresis 1110.

FIG. 11 illustrates TCP Tahoe constant traffic on the standalone networksimulator 902, wherein queue occupancy is shown for RED 1202 andRED-with-hysteresis 1204.

FIG. 12 illustrates TCP Reno bursty traffic on the standalone networksimulator 902. Two bursts 1302 and 1304 each last for one second, withan intervening OFF period 1306 of one second, wherein queue occupancy isshown for RED 1308 and RED-with-hysteresis 1310.

Lastly, FIG. 13 provides tables of packet drop and packet transmitstatistics according to the present invention.

In another embodiment of the present invention, an adaptive algorithm isalso provided to adjust the increment and decrement of transmitprobability for each flow, together with hysteresis to increase thepacket transmit rates by using packet data store to absorb burstytraffic. The proposed algorithm maintains the throughput for persistentbursts of packets. Using straight forward implementation of hysteresisalone in the active flow management will increase the system throughputby making better use of available queue capacity. However, this resultsin an increase in the queue level peak, potentially exposing the systemto tail drops when subjected to severe bursts for bursty traffic. Withthe addition of adaptive increment and decrement of transmit probabilityof each flow, queue peak can be limited to a reasonable level, thuspreventing tail drop.

An embodiment of the invention thus proposes an algorithm including thefollowing two components to improve the performance of active flowmanagement: (1) a Bandwidth Allocation Transmit (BAT) algorithm, withoutSARED but with hysteresis; and (2) an adaptive transmit fraction Tiresponsive to certain conditions (e.g., queue and/or traffic).

Further information about BAT is set forth in commonly-assigned U.S.patent applications entitled “METHOD AND SYSTEM FOR PROVIDINGDIFFERENTIATED SERVICES IN COMPUTER NETWORKS”, Ser. No. 09/448,197,filed Nov. 23, 1999; and “METHOD AND SYSTEM FOR CONTROLLING FLOWS INSUB-PIPES OF COMPUTER NETWORKS”, Ser. No. 09/540,428, filed Mar. 31,2000, both of which are incorporated herein by this reference.

With regard to (1) the first part of the two-part algorithm (BAT withoutSARED but with hysteresis), the Transmit fraction of BAT for flow i, Ti,is defined as follows:

-   -   If fi(t)<=fi,min then Ti(t+dt)=min(1, Ti(t)+w);    -   else if fi(t)>fi,max then Ti(t+dt)=Ti(t)(1−w);    -   else if B(t)=1 then Ti(t+dt)=min(1, Ti(t)+CiBavg(t));    -   otherwise then Ti(t+dt)=Ti(t)(1−DiOi(t));        where Ci and Di are constants used for increment and decrement,        respectively, of Ti. Ci and Di are defined by subscription of        each flow, fi,min, and the service rate of the system, S. They        are given as follows:    -   Ci=(S+fi,min−(f1,min+f2,min+ . . . +fn,min))/16; and    -   Di=(S−fi,min)*4.        Hysteresis is incorporated according to the following algorithm:        if hysteresis is on and the queue level is less than the        hysteresis threshold, then no packet will be dropped—i.e., Ti is        updated but does not apply to packets; else, if hysteresis is        off, then packets are processed as normal—i.e. Ti is applied to        each packet.

With regard to (2) the second part of the two-part algorithm (adaptivetransmit fraction Ti based on certain conditions), prior artimplementations of BAT have been guarded by SARED which will reduce Tiwhen queue occupancy exceeds the SARED threshold, e.g., 25% of maximumqueue capacity. With hysteresis, there is no need for SARED to guardBAT. However, this may increase the queue level peak which may causetail drop due to high queue occupancy. In order to prevent packets fromtail drop, the present invention provides for an adaptive increment anddecrement of transmit probability of each flow, Ti, to prevent tail dropwhile maintaining the advantage of hysteresis, e.g. higher transmitrates with bursty traffic. An embodiment of the present inventioncomprises a normal Ti algorithm with an extended Ti algorithm to adaptTi for good conditions (low queue and/or light traffic) and severeconditions (high queue and/or severe traffic), respectively.

For conditions between good and severe, an adaptive increment anddecrement of Ti is used based on the condition of traffic or thedirection the queue level is moving. “Severe conditions” implies that noamount of congestion control will be able to prevent the discard ofarriving packets. Referring again to FIG. 1, this is the case where thequeue level (on the x axis) has reached the high threshold (H), beyondwhich the drop probability is=1. Between L and H (i.e. between the goodand severe conditions) is where the flow control lies—and with regard to(2), this is an adaptive increment and decrement of Ti unlike a fixedchange in Ti as was done in (1). The advantages of the proposedalgorithm include using queue data store to absorb short burst trafficto achieve higher throughput, and adjusting increment and decrement oftransmit probability for each flow to limit queue peak to prevent taildrop.

FIG. 14 illustrates an adaptive algorithm 1502 according to the presentinvention of Ti using hysteresis as good or severe condition indicatorfor flow i, given constants Ci and Di calculated from subscription offlow i and service rate of the system. In step 1504, the HT flag isdetermined. If HT is ON, then in step 1506 Ti is computed using Ci andDi in BAT. Else, if HT is OFF, then in step 1508 Ti is computed usingF(Ci) and G(Di) in BAT, where F is a decreasing function and G is anincreasing function. One embodiment sets F(C)=C/2 and G(D)=min(1, 2*D);however, other embodiments may utilize different values, and the presentinvention is not limited to these values. After step 1506 or step 1508,in step 1510, the Ti is updated.

HT is set according to algorithm 301 of FIG. 2. Given low threshold L,high threshold H, and hysteresis threshold Ht where 0<=L<=Ht<=H<=maximum queue capacity. Hysteresis is ON initially. It is preferredthat both Ti and HT are updated periodically and the period is dependenton queue size and service rate. When hysteresis is ON and the queuelevel is less than the hysteresis threshold, no packet will be dropped.When hysteresis is OFF, Ti is applied to every packet.

The benefit of the present invention is demonstrated by simulationresults shown in FIGS. 15 through 19. These simulations use hysteresisas an indicator of good and severe conditions. In these simulations,F(Ci)=Ci/(2{circumflex over ( )}3) and G(Di)=min(1, 23*Di) are used. Thehysteresis threshold Ht is 2*(low threshold). The simulation containsseven cases and each has constant burst OFF duration for 1.07 ms exceptfor the case of 100% burst ON duration. The respective “burst ON”durations for the seven cases are: case 1602—100%; case 1604—66.6%; case1606—61.5%; case 1608—54.5%; case 1610—50.0%; case 1612—44.4%; and case1614—37.4%. For example, the traffic pattern for the 66.6% burst ONduration case 1604 is made by the cycles of 2.13 ms burst ON andfollowed by 1.07 ms burst OFF. The traffic pattern is 150% subscriptionwhen bursty traffic is ON and 20% subscription when bursty traffic isOFF.

The simulations shown in FIGS. 15 through 19 contain four (4) UDP flows,and the subscriptions of each flow are: 10%, 10%, 20%, and 0% of totalbandwidth, respectively. The offered load for each flow is 50%, 40%,20%, and 40% of total bandwidth, respectively, when burst is ON and 5%for each when burst is OFF. Note that the fourth flow is best effort—itwill only avail of the bandwidth that is left over after allocation tothe remaining flows. According to a min-max algorithm, the idealtransmit rates for each flow under constant case (100% burst ON) are60%, 75%, 100%, and 50%, respectively.

The aggregate transmit rates are illustrated in FIG. 15, and averagelatency for the same cases are shown is in FIG. 16 for various burstytraffic. FIGS. 15 and 16 show that the proposed invention can result inhigher transmit rates for bursty traffic while having higher latencybecause of the use of queue capacity to absorb bursty traffic.

Specific transmit rates for individual flows obtained through thealgorithms of the present invention 1802 and through prior art BATmethods 1804 are illustrated in FIGS. 17, 18, and 19. FIG. 17 is theaggregate transmit rate for each flow for 50.0% burst, and FIG. 18 isthe aggregate transmit rate for each flow for 66.7% burst.

FIGS. 17 and 18 show higher transmit rates for each flow for differentburstyness. They illustrate that the present invention obtains highertransmit rates for bursty traffic through better use of available queuecapacity to accommodate bursty traffic. FIG. 19 is the aggregatetransmit rate for each flow for steady traffic (100% burst). It showsthat the algorithm according to the present invention can maintain thesame transmit rate for steady, or persistent bursty, traffic.

Overall, the present invention can achieve higher aggregate transmitrates for a variety of traffic burst characteristics by making betteruse of queue capacity and can maintain the level of performance forpersistent traffic.

The algorithm for hysteresis with adaptive increment and decrement oftransmit rate can also be easily applied to Weighted RED (WRED) toachieve higher transmit rates. In this case, a different Ht thresholdcould be defined for each of the flows subscribing to the availablebandwidth along with the individual definitions of their low (Li) andhigh (Hi) thresholds. When the hysteresis flag is turned ON, theprobability of dropping can be decreased by twice of what it would bewhen the hysteresis flag is turned OFF, thereby accepting more packetsinto the queue when there is less congestion.

The invention may be tangibly embodied in a computer program residing ona computer-readable medium or carrier, such as the floppy disc 2105 orhard drive 2101 shown in FIG. 20. The medium 2105 may comprise one ormore of a fixed and/or removable data storage device, such as a floppydisk or a CD-ROM, or it may consist of some other type of data storageor data communications device. The computer program may be loaded intothe memory 2102 of a network manager computer device 2110 for execution.The computer device 2110 may be connected to a network via networkinterface 2103. The computer program comprises instructions which, whenread and executed by the computer device 2110, causes the computerdevice 2110 to perform the steps necessary to execute the steps orelements of the present invention.

The foregoing description of the exemplary embodiment of the inventionhas been presented for the purposes of illustration and description. Itis not intended to be exhaustive or to limit the invention to theprecise forms disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of theinvention be limited not with this detailed description, but rather bythe claims appended hereto.

1. A method for managing and transmitting data packets flow in a computer network system, comprising the steps of: (a) providing a queue having a queue level; (b) determining the queue level; (c) specifying a queue hysteresis threshold and a queue low threshold; (d) providing a transmit probability; (e) if the queue level is greater than or equal to the hysteresis threshold, then dropping packets from the plurality of packets responsive to the transmit probability and transmitting a remainder of the plurality of data packets to the queue; (f) if the queue level is less than the hysteresis threshold, then transmitting the plurality of data packets to the queue without dropping any data packets; and (g) if the queue level is less than the low threshold, then recalculating the transmit probability.
 2. The method of claim 1, further comprising the steps of: (h) ascertaining an arrival rate of data packets into the queue; (i) ascertaining a sending rate of data packets out from the queue; (j) if the queue level is greater than or equal to the hysteresis threshold and less than the sending rate from the queue, then: (j)(1) decreasing the queue level until it is less than the hysteresis threshold; and (j)(2) dropping packets from the plurality of data packets responsive to the transmit probability until the queue level decreases to at least the low threshold.
 3. The method of claim 2, further comprising the steps of: (k) providing a traffic flow condition parameter indicating either a first traffic flow condition or a second traffic flow condition; (l) ascertaining the traffic flow condition parameter; and wherein the step (g) of recalculating the transmit probability is performed through applying a normal transmit probability algorithm or an extended transmit probability algorithm, comprising the steps of: (g)(1) applying the normal transmit probability algorithm to increment or decrement the transmit probability responsive to the traffic flow condition parameter indicating the first traffic flow condition; and (g)(2) applying the extended transmit probability algorithm to increment or decrement the transmit probability responsive to the traffic flow condition parameter indicating the second traffic flow condition.
 4. The method of claim 3, wherein the traffic flow condition parameter is a hysteresis flag having a value of ON for the first traffic flow condition and a value of OFF for the second traffic flow condition.
 5. The method of claim 4, further comprising the step of: if the hysteresis flag is OFF and the queue level is less than the low queue threshold and an offered load is below a link capacity, switching the hysteresis flag to ON; wherein if the hysteresis flag is ON and the queue level is greater than or equal to the hysteresis threshold, then the step (e) of dropping packets and transmitting a remainder of data packets to the queue further comprises the step of switching the hysteresis flag to OFF; and wherein the step (f) of transmitting the plurality of data packets to the queue without dropping any and the step (g) of recalculating the transmit probability are performed if the hysteresis flag is ON.
 6. The method of claim 5 further comprising the step of providing a data flow parameter i; wherein the transmit probability is a transmit fraction Ti; and the step (g) of recalculating the transmit probability comprises applying a Bandwidth Allocation Transmit (BAT) algorithm, wherein: the step (g)(1) is performed if the hysteresis flag is ON, and Ti is incremented or decremented according to the following steps: (g)(1a) if fi(t)<=fi,min then Ti(t+dt)=min(1, Ti(t)+w); (g)(1b) else if fi(t)>fi,max then Ti(t+dt)=Ti(t)(1−w); (g)(1c) else if B(t)=1 then Ti(t+dt)=min(1, Ti(t)+CiBavg(t)); (g1)(d) otherwise then Ti(t+dt)=Ti(t)(1−DiOi(t)); where Ci=(S+fi,min−(f1,min+f2,min+ . . . +fn,min))/16; and Di=(S−fi,min)*4; and the step (g)(2) if performed if the hysteresis flag is OFF, and Ti is incremented or decremented according to the following steps: (g)(2a) determining a direction of queue level; (g)(2b) if the queue level is increasing, then Ti=F(Ci); and (g)(2c) else if the queue level is decreasing, then Ti=G(Di) where F(Ci) is a BAT decreasing function and G(Di) is a BAT increasing function.
 7. A data flow manager structure for transmitting data packets in a computer network system, comprising: a data flow manager in communication with a computer network; a queue on the network, the queue having a queue level; a queue hysteresis threshold; a queue low threshold; and a transmit probability; wherein the data manager is configured to: drop packets from a packet flow comprising a plurality of data packets responsive to the transmit probability and transmit a remainder of the flow packets to the queue if the queue level is greater than or equal to the hysteresis threshold; transmit the packet flow to the queue without dropping any data packets if the queue level is less than the hysteresis threshold; and recalculate the transmit probability if the queue level is less than the low threshold.
 8. The data flow manager structure of claim 7, wherein the data manager is further configured to decrease the queue level until it is less than the hysteresis threshold and drop packets from the packet flow responsive to the transmit probability until the queue level decreases to at least the low threshold if the queue level is greater than or equal to the hysteresis threshold and less than a sending rate from the queue.
 9. The data flow manager structure of claim 8, further comprising: a traffic flow condition parameter indicating either a first traffic flow condition or a second traffic flow condition; a normal transmit probability algorithm; and an extended transmit probability algorithm, wherein the data manager is further configured to use the normal transmit probability algorithm to recalculate the transmit probability responsive to the traffic flow condition parameter indicating the first traffic flow condition, and use the extended transmit probability algorithm to recalculate the transmit probability responsive to the traffic flow condition parameter indicating the second traffic flow condition.
 10. The data flow manager structure of claim 9, wherein the traffic flow condition parameter is a hysteresis flag having a value of ON for the first traffic flow condition and a value of OFF for the second traffic flow condition.
 11. The data flow manager structure of claim 10, wherein the data manager is configured to: switch the hysteresis flag to ON if the hysteresis flag is OFF and the queue level is less than the low queue threshold and an offered load is below a link capacity; switch the hysteresis flag to OFF if the hysteresis flag is ON and the queue level is greater than or equal to the hysteresis threshold; and transmit the plurality of data packets to the queue without dropping any and recalculate the transmit probability if the hysteresis flag is ON.
 12. The data flow manager structure of claim 11 wherein the transmit probability is a transmit fraction Ti, further comprising a data flow parameter i; and wherein the data manager is further configured to recalculate the transmit probability by applying a Bandwidth Allocation Transmit (BAT) algorithm, wherein: the normal transmit probability algorithm comprises: if fi(t)<=fi,min then Ti(t+dt)=min(1, Ti(t)+w); else if fi(t)>fi,max then Ti(t+dt)=Ti(t)(1−w); else if B(t)=1 then Ti(t+dt)=min(l, Ti(t)+CiBavg(t)); otherwise then Ti(t+dt)=Ti(t)(1−DiOi(t)); where Ci=(S+fi,min−(f1,min+f2,min+ . . . +fn,min))/16; and Di=(S−fi,min)*4; and the extended transmit probability algorithm comprises: Ti=F(Ci) if the queue level is increasing; and Ti=G(Di) if the queue level is decreasing, where F(Ci) is a BAT decreasing function and G(Di) is a BAT increasing function.
 13. An article of manufacture comprising a computer usable medium having a computer readable program embodied in said medium, wherein the computer readable program, when executed on a computer, causes the computer to manage network data flow by: if a queue level is greater than or equal to a hysteresis threshold, then dropping packets from flow of a plurality of packets responsive to a transmit probability and transmitting a remainder of the plurality of data packets to the queue; if the queue level is less than the hysteresis threshold, then transmitting the plurality of data packets to the queue without dropping any data packets; and if the queue level is less than a low threshold, then recalculating the transmit probability.
 14. The article of manufacture of claim 13, wherein the computer readable program, when executed on a computer, further causes the computer to manage network data flow by: if the queue level is greater than or equal to the hysteresis threshold and less than a sending rate from the queue, then: decreasing the queue level until it is less than the hysteresis threshold; and dropping packets from the plurality of data packets responsive to the transmit probability until the queue level decreases to at least the low threshold.
 15. The article of manufacture of claim 14, wherein the computer readable program, when executed on a computer, further causes the computer to manage network data flow by: recalculating the transmit probability through applying a normal transmit probability algorithm to increment or decrement the transmit probability responsive to a traffic flow condition parameter indicating a first traffic flow condition; and recalculating the transmit probability through applying an extended transmit probability algorithm to increment or decrement the transmit probability responsive to the traffic flow condition parameter indicating a second traffic flow condition.
 16. The article of manufacture of claim 15, wherein the traffic flow condition parameter is a hysteresis flag having a value of ON for the first traffic flow condition and a value of OFF for the second traffic flow condition.
 17. The article of manufacture of claim 16, wherein the computer readable program, when executed on a computer, further causes the computer to manage network data flow by: switching the hysteresis flag to ON if the hysteresis flag is OFF and the queue level is less than the low queue threshold and an offered load is below a link capacity; switching the hysteresis flag to OFF if the hysteresis flag is ON and the queue level is greater than or equal to the hysteresis threshold; and recalculating the transmit probability if the hysteresis flag is ON.
 18. The article of manufacture of claim 17, wherein the computer readable program, when executed on a computer, further causes the computer to manage network data flow by: recalculating the transmit probability by applying a Bandwidth Allocation Transmit (BAT) algorithm, wherein: if the hysteresis flag is ON, Ti is incremented or decremented according to the following steps: if fi(t)<=fi,min then Ti(t+dt)=min(1, Ti(t)+w); else if fi(t)>fi,max then Ti(t+dt)=Ti(t)(1−w); else if B(t)=1 then Ti(t+dt)=min(l, Ti(t)+CiBavg(t)); otherwise then Ti(t+dt)=Ti(t)(1−DiOi(t)); where Ci=(S+fi,min−(f1,min+f2,min+ . . . +fn,min))/16; and Di=(S−fi,min)*4; and if the hysteresis flag is OFF, Ti is incremented or decremented according to the following steps: if a queue level is increasing, then Ti=F(Ci); and else if the queue level is decreasing, then Ti=G(Di), where F(Ci) is a BAT decreasing function and G(Di) is a BAT increasing function; wherein i is a data flow parameter and the transmit probability is a transmit fraction T. 